今天要介紹的是SELECT的部分,
在SQL中在製作SQL式的時候已可以加上很多條件去限定,
所以我們在QUERY產生器的使用上也會有相對應的使用方式,
以下是一些他使用方式的介紹,
今天在介紹完這些東西後,
我們將會在明天將我們之前完成的留言板整合起來。
Selects#
從資料表取得所有資料列
$users = DB::table('users')->get();
foreach ($users as $user)
{
var_dump($user->name);
}
從資料表取得單一資料列
$user = DB::table('users')->where('name', 'John')->first();
var_dump($user->name);
從資料表取得單一資料列的資料欄位
$name = DB::table('users')->where('name', 'John')->pluck('name');
取得資料表欄位值的清單
$roles = DB::table('roles')->lists('title');
這個方法將會回傳欄位 title 值的組合陣列,你也可以自訂回傳的陣列 key 名稱:
$roles = DB::table('roles')->lists('title', 'name');
指定 SELECT 欄位
$users = DB::table('users')->select('name', 'email')->get();
$users = DB::table('users')->distinct()->get();
$users = DB::table('users')->select('name as user_name')->get();
再以存在的查詢加入 SELECT 的欄位
$query = DB::table('users')->select('name');
$users = $query->addSelect('age')->get();
使用 WHERE 的語句
$users = DB::table('users')->where('votes', '>', 100)->get();
使用 OR 的語句
$users = DB::table('users')
->where('votes', '>', 100)
->orWhere('name', 'John')
->get();
使用 WHERE Between 的語句
$users = DB::table('users')
->whereBetween('votes', array(1, 100))->get();
使用 WHERE IN 的語句,並指定 IN 陣列值
$users = DB::table('users')
->whereIn('id', array(1, 2, 3))->get();
$users = DB::table('users')
->whereNotIn('id', array(1, 2, 3))->get();
使用 WHERE NULL 的語句,去找到還沒設定值的紀錄
$users = DB::table('users')
->whereNull('updated_at')->get();
Order By 、 Group By 及 Having
$users = DB::table('users')
->orderBy('name', 'desc')
->groupBy('count')
->having('count', '>', 100)
->get();
Offset & Limit
$users = DB::table('users')->skip(10)->take(5)->get();